package cn.superchart.common.base;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

@Getter
@Setter
public  class BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 删除标志 */
    @TableLogic
    @JsonIgnore
    @TableField(fill = FieldFill.INSERT)
    private String deleteFlag;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime gmtCreate;

    /** 更新时间 */
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime gmtModified;

    /** 创建人 ID */
    @TableField(fill = FieldFill.INSERT)
    private String createId;


    /** 更新人 ID*/
    @TableField(fill = FieldFill.UPDATE)
    private String modifiedId;

    /** 创建人名称 */
    @TableField(exist = false)
    private String createName;

    /** 更新人名称 */
    @TableField(exist = false)
    private String modifiedName;


    /**
     * 每个entity 需要 重写该方法 指定 主键 这样在保存对象时 可以自动获取返回的 主键 ID
     * @return
     */
    protected  String primaryKey(){
        return null;
    }
}
